<!DOCTYPE html PUBLIC "-//W3C//DTD html 3.2//EN">

<html>
<head>

    <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
    <meta name="author" content="Ignacio Taranto" >

    <style>
        table, thead, tbody, tfoot, tr, th, td {
            font-family:"Liberation Sans";
            margin-left: 6em;
            font-size:small}
        body, h1, h2, h3, div {
            font-family: lucida sans, helvetica, arial, sans-serif;
            margin-left: 2em;}
        p, li, ul, il {
            font-family: lucida sans, helvetica, arial, sans-serif; 
            margin-left: 6em;
            margin-right: 12em;}
        pre {
            background: #eee; 
            border: 1px dashed #889;
            margin-left: 3em; 
            padding: 1ex;}
        dt {
            font-family: monospace;
            font-weight: bold;}
    </style>

    <title>
        Implementación de un microprocesador MIPS segmentado - INFORME
    </title>
</head>

<body>

<h1><p align="center">Implementacion de un microprocesador MIPS segmentado</p></h1>

<h2><p align="center">Materia: Arquitectura de Computadoras</p></h2>

<h2>Integrantes:</h2>

<p> Moine, Joaquín
<br>E-Mail: ​joaquinmoine@gmail.com
<br>
<br>Rossi, Nahuel
<br>E-Mail: nahuelr@live.com
<br>
<br>Taranto, Ignacio
<br>E-Mail: itaranto7@gmail.com
</p>

<h2>Introducción:</h2>
<p>
    Se procedió a implementar un microprocesador MIPS segmentado en lenguaje
    VHDL.
    <br>La implementación del mismo fue sugerida en la cátedra, donde se
    explicaron los componentes a desarrollar y como interconectarlos.
</p>

<h2>Desarrollo:</h2>
<p>
    Siguiendo los lineamientos de la materia se desarrollaron los módulos
    necesarios para el funcionamiento del microprocesador MIPS.
    <br>El procesador soporta la segmentación de instrucciones y consta en 5
    etapas:
    <li>Fetch (IF)</li>
    <li>Decode (ID)</li>
    <li>Execute (EX)</li>
    <li>Memory (MEM)</li>
    <li>Write Back (WB)</li>
</p>

<h2>Decisiones de diseño:</h2>
<p>
    Las 5 etapas mencionadas corresponden a módulos independientes, donde cada
    uno se comunica con el siguiente a través de un registro de segmentación o
    señales. Se opto por no conectar los registros directamente  entre sí, sino
    a través de los módulos, para proporcionar mayor robustez y modularidad.
    <br>Los módulos se armaron a base de componentes mas pequeños, que
    representan los circuitos combinacionales o secuenciales utilizados.
    <br>Se respetaron los nombres de componentes y señales estipulados por la
    cátedra.
    <br>Se realizaron test benches para todos los componentes básicos, es decir
    para aquellos que no consistieron en conectar estos.

    <br>A continuación se muestra un diagrama de alto nivel del procesador. En sus 
    salidas se devuelve el código de las instrucción actual y el Program
    Counter.
</p>

<img src="mips.png">

<h2>Herramientas utilizadas:</h2>
<p>
    <li> GHDL: para compilar y simular el código VHDL.</li>
    <li> gtkwave: para analizar las señales y testear el resultado.</li>
</p>
<br>
<br>

</body>
</html>
